Packet networks are general-purpose data networks which are not tied to fixed-bandwidth circuits. Instead, they are designed to transmit bits (in the form of a packet of fixed or variable length) only when there are bits to transmit. Packet networks are well suited for sending stored data of various types, including messages, fax, speech, audio, video and still images. Typically, one accesses a packet network through a client program executing on a personal computer (PC), and so packet networks are inherently client/server driven. Packet networks provide access to distributed databases and have excellent search capabilities.
There are millions users of packet networks in the United States, many of whom use the Internet (the largest and most renowned of the existing packet networks). The number of Internet users is growing rapidly and will continue to do so over the next decade. The Internet is implemented using a large variety of connections between computers spread throughout the United States and even across much of the globe; included are several subnetworks (sometimes called “backbone” networks) used to carry digital “traffic” on the Internet. These interconnected computers can support applications, such as electronic mail and the World Wide Web, which facilitate communications between persons across the U.S. or around the globe. Users typically communicate over the Internet using a combination of hardware and software providing interconnectivity that is compatible with the Transmission Control Protocol/Internet Protocol (TCP/IP).
Communication on the Internet is inherently unlike commercial telephony in that it is connectionless—that is, there is no physical channel assigned to the “connection.” Instead, packets of information are relayed through the network from source to destination server. When no packets are currently being sent, there is no load on the transmission system. A communication failure occurs when packets are either lost (as might happen via queue overload at any node) or more often, when the load (i.e., queue of packets along with time to process each) at any processor is so long that a timeout is issued by the originator.
One type of computer used in establishing connections within the Internet is known as a server. Typically, servers used in connection with the Internet are operated by or on behalf of institutions or businesses attempting to provide timely and responsive communication or information services. Functionally, such services are analogous to communications services that terminate Public Switched Telephone Network (PSTN) calls, such as, e.g., voice mail, interactive voice response services, customer care, sales, etc.
Today, the Internet is often used to request information from, or to send information to, an individual or a private or public organization. Examples of such activities include World Wide Web browsing, e-mail, inter-relay chat (IRC) and its Internet telephony incarnation. A person requesting or sending information shall be referred to herein as the source or sender, and the recipient of such a transmittal shall be referred to herein as the destination or recipient (with the understanding that the functional roles are reversed when the recipient replies). In each case, the sender addresses a message to a destination using a Uniform Resource Locator (URL) or an Internet Protocol (IP) address.
In a typical Web browsing session, a World Wide Web (WWW) user specifies a URL for the browser to “contact” for information. A URL is essentially a hierarchical access key that uniquely specifies a unit of content in a remote database that he wishes to reach. The content so referred to is often called a “Home Page” if it is regarded as the root node of a hierarchical data structure (sub-tree beneath it) or a sub-page if it is associated with a leaf node of such a tree. Each server has one or several “Home Pages” within it.
The URL address allows a user to select either the root or any of the sub-levels within any tree. In that sense, the address serves a function analogous to a telephone number, but in addition a URL has indefinite length allowing the equivalent of extensions to be specified to any level. Part of the URL translates directly into a network address for the destination server, by means of the Domain Name System (DNS) that is essentially a set of reference address servers that respond to URL contact requests by looking up the IP address corresponding to textual URLs.
When a user specifies a URL or selects a “hot link” or hyperlink on content already displayed, a DNS server supplies the IP address to be used in the header portion corresponding to the IP address for packets intended to be sent to the site corresponding to the URL. The user's computer initiates contact by emitting one or more packets of data that traverse the Internet network and are processed by the receiving server. The receiving server then returns one or more packets of data to the user terminal, also over the Internet. The transfer of requests or information typically requires many packets. Because some packets transmitted across the Internet may be delayed because of network congestion and arrive after a the receiving server has timed out, network congestion can cause communication failure.
In the current Internet and in the Internet envisioned under Internet Protocol Version 6 (IPv6, the next generation Internet protocol), senders are now and are likely to continue to be confronted by “busy” messages when the destination is not functioning or is overloaded, or because network traffic is congested. Often, such messages give no real indication of what is happening. In any event, the requested transmission or interactive exchange ends abruptly, and the user must, at his or her own initiative, try again later. For busy sites, many such interactive attempts must be made before establishing a connection with the site, wasting users'time, reducing their efficiency and creating frustration.
For example, in the current art, assume that a user initiates a request for information found over a packet network (e.g., the Internet) at a destination (e.g., web page) by selecting a hyperlink displayed on a PC. The request is formulated by a gateway server (e.g., a host server operated by an Internet service provider) as a data message to a DNS server. In response, the DNS server returns to the requesting server an IP address corresponding to the intended destination. This destination address is then used in the header of a datagram. In the simplest case, the address might be construed as “IP(user), IP(destination),” the IP addresses associated with the user's gateway and the destination server. The datagram is then routed through the packet network. To reply, the destination formats the reverse IP address “IP(destination), IP(user).” The destination server may respond automatically (as in a web page request), may store the received message (as in E-mail), or may forward the message to a customer premises terminal (as in IRC).
In IPv6, the sending server may specify a subnetwork provider over which traffic should be routed. In this case, then, the user's gateway server would specify the address “IP(user), subnetwork, IP(destination)” and the destination would specify “IP(destination), subnetwork, IP(user)” as the return address. If the desired network is congested or inoperative, the gateway server used by the user would ultimately format an “error” message to the user's PC In that case, the user could then select another subnetwork and re-try; there is even some suggestion of dynamic subnetwork selection in real time. However, such selections would be done only as a means to avoid network congestion; subnetwork selections do not address server congestion at the destination site.
Traditionally, Internet users have been willing to tolerate delays because they have not usually attempted business activities. With growing interest in commercial use of the World Wide Web and Internet telephony, however, customers will expect higher levels of customer service, such as the level of services comparable to those that have been delivered in voice telephony.
While one approach to providing better response may be to provide extremely high bandwidth networks with great overcapacity (e.g., a private network, or a network based on advanced technology, such as ATM fast packet switching), such an approach does not address the issue described above, which is due to traffic congestion in the network comprising the Internet and the servers connected to the Internet together with an inherently primitive way of dealing with “busy” conditions.
What is desired is a way to improve handling of messaging, including handling of requests for information and reduction of returned “busy” messages in a packet network environment.